package com.example.logic.chapter5.demo2;

/**
 * @Date 2023-05-02
 * @Author Jonathan
 */
public class Outer {
    private static int shared = 100;

    public static class StaticInner {

        public void innerMethod() {
            System.out.println("static inner method");
        }
    }

    public class Inner {

        // 成员内部类中不可以定义静态变量和方法（final变量例外，它等同于常量）
        private final static int value = 100;

        public void innerMethod() {
            System.out.println("innerMethod");
            // 成员内部类 还可以通过 "外部类.this.xxx" 的方式引用外部类的实例变量和方法
            Outer.this.action();
        }
    }


    private void action() {
        System.out.println("action");
    }

    public void test() {
        StaticInner si = new StaticInner();
        si.innerMethod();
    }


    public static void main(String[] args) {
        Outer outer = new Outer();
        outer.test();
    }
}
